package com.duobaoyu.dby.supply.common.biz.bo.order;

import com.duobaoyu.dby.saas.product.common.base.json.TemplateJson;
import com.duobaoyu.dby.supply.common.biz.bo.area.ConsigneeInfo;
import com.duobaoyu.dby.supply.common.biz.bo.product.OrderProductParamExtendInfoBO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.List;

/**
 * 订单拆分
 *
 * @author fengshaoyu
 * @version 1.0.0
 * @date 2023/10/9 10:17
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class OrderSplitBO {

	private List<OrderSplitSkuInfo> orderSkuInfoList;

	@Data
	@Builder
	@NoArgsConstructor
	@AllArgsConstructor
	public static class OrderSplitSkuInfo {
		/**
		 * 订单类型
		 */
		private String orderType;
		/**
		 * 子单号
		 */
		private String orderSn;
		/**
		 * 供应链三方交易号
		 */
		private String orderTradeSn;
		/**
		 * 渠道编码
		 */
		private String channelCode;
		/**
		 * 充值账号
		 */
		private String rechargeAccount;
		/**
		 * 收件人地址
		 */
		private ConsigneeInfo consigneeInfo;
		/**
		 * 收货人信息
		 */
		private RecipientInfo recipientInfo;
		/**
		 * 电费
		 */
		private ElectricityFeesInfo electricityFeesInfo;
		/**
		 * 拆分的商品
		 */
		private List<SplitSkuInfo> skuInfoList;
	}

	@Data
	@Builder
	@NoArgsConstructor
	@AllArgsConstructor
	public static class SplitSkuInfo {
		/**
		 * skuCode
		 */
		private String skuCode;
		/**
		 * sku数量
		 */
		private Integer skuNum;
		/**
		 * SKU名称
		 */
		private String skuName;
		/**
		 * SKU展示图
		 */
		private String skuPic;
		/**
		 * 三方code码
		 */
		private String channelCode;
		/**
		 * 商品类型 :real->实物商品；call->话费快充商品；coupon->卡券；recharge->直充商品；call_slow->话费慢充商品；electricity_fees_slow->电费慢充商品
		 */
		private String productType;
		/**
		 * 仓储类型,1:保税区邮、2:香港直邮、3:国内、4:法国直邮、5:澳门直邮、6:欧洲直邮、7:澳洲直邮、8:韩国直邮、9:美国直邮、10:日本直邮、11:德国直邮、12:新西兰直邮
		 */
		private Integer repositoryType;
		/**
		 * 商品编码
		 */
		private String productCode;
		/**
		 * 渠道商品编码
		 */
		private String channelProductCode;
		/**
		 * 渠道SKU编码
		 */
		private String channelSkuCode;
		/**
		 * 渠道specId
		 */
		private String channelSpecId;
		/**
		 * 渠道供应商
		 */
		private String channelSupplierId;
		/**
		 * 是否可开专票，1：支持，0：不支持
		 */
		private Integer canInvoice;
		/**
		 * 模版 （直充商品存在模板）
		 */
		private TemplateJson templateJson;
		/**
		 * 三级类目ID
		 */
		private Long thirdClassifyId;
		/**
		 * 三级类目名称
		 */
		private String thirdClassifyName;
		/**
		 * 原价(面额)
		 */
		private BigDecimal originalPrice;
		/**
		 * 商品单位
		 */
		private String unit;
		/**
		 * 销售属性
		 */
		private String saleAttributes;
		/**
		 * 平台销售价格
		 */
		private BigDecimal platformSellPrice;
		/**
		 * 平台成本价格
		 */
		private BigDecimal platformPrice;
		/**
		 * 未税价
		 */
		private BigDecimal channelNakedPrice;
		/**
		 * 渠道商品实际支付金额
		 */
		private BigDecimal channelPayAmount;
		/**
		 * 到账金额
		 */
		private BigDecimal actualAmount;
		/**
		 * 税率
		 */
		private BigDecimal skuTaxRate;
		/**
		 * 品牌ID
		 */
		private Long brandId;
		/**
		 * 品牌名称
		 */
		private String brandName;
		/**
		 * 1对内，2不对内
		 */
		private Integer insideStatus;
		/**
		 * 是否需要校验身份证
		 */
		private Boolean needVerifyIdentity;
		/**
		 * 商品额外信息
		 */
		private OrderProductParamExtendInfoBO orderProductParamExtendInfo;
	}
}
